//
//  GPChatController.h
//  GuaPi
//
//  Created by 陈华 on 2017/6/19.
//  Copyright © 2017年 Joanlove. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "GPChatViewModel.h"     //聊天视图模型（控制）
@class GPChatToolView;          //底部的工具栏
@class GPEmojiKeyboard;         //表情键盘
@class GPPhotosView;            //相册键盘
@class GPVoiceView;             //语音键盘

@interface GPChatController : UIViewController <UITableViewDelegate,UITableViewDataSource,UIImagePickerControllerDelegate, UINavigationControllerDelegate>

#pragma mark - UI属性
/**tableVie*/
@property(nonatomic,weak) UITableView *tableView;
/**底部工具栏*/
@property(nonatomic,weak) GPChatToolView *toolView;
/**表情键盘*/
@property(nonatomic,weak) GPEmojiKeyboard *emojiView;
/**相册键盘*/
@property(nonatomic,weak) GPPhotosView *photosView;
/**语音键盘*/
@property(nonatomic,weak) GPVoiceView *voiceView;

#pragma mark - 数据属性
/**消息数据源*/
@property(nonatomic,strong) NSMutableArray *messages;

#pragma mark - 暴露属性
/**聊天的视图模型*/
@property(nonatomic,strong) GPChatViewModel *chatViewModel;


#pragma mark - 记录属性
/**表情键盘是否第一次记载*/
@property(nonatomic,assign) BOOL isEmojiViewFirstLoading;
/**表情键盘是否正在显示*/
@property(nonatomic,assign) BOOL isEmojiViewShowing;
/**系统键盘是否正在显示*/
@property(nonatomic,assign) BOOL isSystemKeyboradShowing;
/**相册键盘是否第一次加载*/
@property(nonatomic,assign) BOOL isPhotosViewFirstLoading;
/**相册键盘是否正在显示*/
@property(nonatomic,assign) BOOL isPhotosViewShowing;
/**语音键盘是否第一次加载*/
@property(nonatomic,assign) BOOL isVoiceViewFirstLoading;
/**语音键盘是否正在显示*/
@property(nonatomic,assign) BOOL isVoiceViewShowing;
/**语音消息的timer*/
@property(nonatomic,weak) NSTimer *voiceTimer;
/**语音消息的时长*/
@property(nonatomic,assign) double voiceLength;

#pragma mark - 方法
/**
 滚动tableView到底部
 */
- (void)gp_scrollTableViewToBottom:(BOOL)animated;
#pragma mark - 数据处理
/**加载历史数据*/
- (void)loadHistoryData;

@end
